package cn.shiwei.Broadcast;


import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * 生产者, 工作模式, 消费者轮流来接收生产者的信息
 */
public class Producer {

    // 常量, 队列名
    public static final String NAME_EXCHANGE_BROADCAST = "shiwei_name_exchange_broadcast";

    public static void main(String[] args) throws IOException, TimeoutException, TimeoutException {
        // 创建链接
        ConnectionFactory factory = new ConnectionFactory();
        // "guest"/"guest" by default, limited to localhost connections
        // factory.setUsername(userName); // 不写就是默认的"guest"
        // factory.setPassword(password); // 不写就是默认的"guest"
        // factory.setVirtualHost(virtualHost); // 不写默认"/"
        // factory.setHost(hostName); // 不写默认 "localhost"
        // factory.setPort(portNumber); // 不写默认端口"5672"
        Connection conn = factory.newConnection();

        // 创建通道
        Channel channel = conn.createChannel();

        // 声明一个交换机
        channel.exchangeDeclare(
                NAME_EXCHANGE_BROADCAST, // 交换机名称
                BuiltinExchangeType.FANOUT // 交换机模式: 广播
        );

        // 发布信息
        channel.basicPublish(
                NAME_EXCHANGE_BROADCAST ,// 表示交换机
                "", // 表示队列名, 广播不需要队列名
                null, // 其他参数(没有)
                "瓜皮112".getBytes() // 消息本体(需要字节数组)
        );

        System.out.println("消息发送");
    }
}
